Django之ORM执行原生sql语句 |
您所在的位置:网站首页 › django 自定义sql › Django之ORM执行原生sql语句 |
django中的ORM提供的操作功能有限,在模型提供的查询API不能满足实际工作需要时,可以在ORM中直接执行原生sql语句。 Django 提供两种方法使用原生SQL进行查询:一种是使用raw()方法,进行原生SQL查询并返回模型实例;另一种是完全避开模型层,直接执行自定义的SQL语句。 raw()方法执行原生sql语句: # raw()方法执行原生sql(调用的类名不区分是谁,只要存在均可执行) ret=models.Book.objects.raw('select * from app01_book') # ret=models.Publish.objects.raw('select * from app01_book') for book in ret: print(book.book_name) # print(book.__dict__) 直接执行自定义原生sql语句: #直接执行自定义原生sql(完全避开模型层,类似pymysql操作) from django.db import connection cursor=connection.cursor() cursor.execute('select * from app01_book') ret=cursor.fetchall() print(ret)#((2, '小时光', Decimal('10.00'), 2), (3, '未来可期', Decimal('33.00'), 1), (4, '打破思维里的墙', Decimal('11.00'), 2), (5, '时光不散', Decimal('11.00'), 3))
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |